#ifndef VIDEOHANDLER_H
#define VIDEOHANDLER_H

#include <QObject>
#include <QCamera>
#include <QVideoSink>

class VideoHandler : public QObject
{
    Q_OBJECT
public:
    explicit VideoHandler(QObject *parent = nullptr);
    ~VideoHandler();

public slots:
    /* 和UI交互 */
    // 打开、关闭摄像头
    void onChangeCameraStatus(bool status);
    // 切换摄像头
    void onChangeCamera(const QCameraDevice);

signals:
    /* 和UI交互 */
    // 回复初始化信号
    void initStatus(bool status);
    // 改变摄像头
    // void changeCamera(const QCameraDevice cameraDevice);

    /* 和imageDealer交互 */
    void frameReadyToDeal(const QImage image);

private:
    QCamera* m_camera;
    QVideoSink* m_videoSink;
    // 初始化摄像头
    void initCamera();

};

#endif // VIDEOHANDLER_H
